<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Migrating from EggSMClient to GtkApplication: GTK+ 3 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GTK+ 3 Reference Manual">
<link rel="up" href="migrating.html" title="Part V. Migrating from Previous Versions of GTK+">
<link rel="prev" href="ch28s02.html" title="Commands and Messages">
<link rel="next" href="gtk-migrating-GtkGrid.html" title="Migrating from other containers to GtkGrid">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="migrating.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ch28s02.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gtk-migrating-GtkGrid.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="gtk-migrating-smclient-GtkApplication"></a>Migrating from EggSMClient to GtkApplication</h2></div></div></div>
<p>
    EggSMClient provides 'session management' support for applications.
    This means a number of things:
    </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">logout notification and negotiation</li>
<li class="listitem">application state saving</li>
<li class="listitem">restarting of applications with saved state</li>
</ul></div>
<p>
    EggSMClient supports this functionality to varying degrees on
    Windows and OS X, as well as with XSMP and D-Bus based session
    managers in X11.
  </p>
<p>
    Starting with GTK+ 3.4, <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a> supports logout notification
    and negotiation similar to EggSMClient.
  </p>
<div class="table">
<a name="id-1.6.6.4"></a><p class="title"><b>Table 17. </b></p>
<div class="table-contents"><table class="table" border="1">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>EggSMClient</th>
<th>GtkApplication</th>
</tr></thead>
<tbody>
<tr>
<td>EggSMClient::quit-requested</td>
<td>instead of calling will_quit (FALSE,...) in response to this signal, install an inhibitor</td>
</tr>
<tr>
<td>EggSMClient::quit</td>
<td>the <span class="type">“shutdown”</span> signal</td>
</tr>
<tr>
<td>EggSMClient::quit-cancelled</td>
<td>-</td>
</tr>
<tr>
<td>egg_sm_client_will_quit</td>
<td>instead of calling will_quit (FALSE,...), install an inhibitor</td>
</tr>
<tr>
<td>egg_sm_client_end_session</td>
<td>-</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><p>
    At this point, GtkApplication has no special support for state saving
    and restarting. Applications can use GSettings or GKeyFile and save as
    much state as they see fit in response to <span class="type">“shutdown”</span> or
    whenever they consider appropriate.
  </p>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>